using System;
using System.IO;
using System.Security.Principal;
using System.Text;
using Jink.Protocol.Core.Headers;
using Jink.Protocol.Core.Verbs;
using XenoGears.Collections.Dictionaries;

namespace Jink.Protocol.Core
{
    public interface IRequestMedia
    {
        IPrincipal User { get; }

        String AbsoluteUrl { get; }
        String RelativeUrl { get; }
        Verb Verb { get; }

        ReadOnlyDictionary<RequestHeader, String> Headers { get; }
        ReadOnlyDictionary<String, String> Cookies { get; }
        ReadOnlyDictionary<String, String> Form { get; }

        Encoding ContentEncoding { get; }
        String ContentType { get; }
        Stream ContentStream { get; }
    }
}